package com.cyt.wx.service;

import com.cyt.base.model.dto.ReturnResult;
import com.cyt.sys.model.po.SysUser;
import com.cyt.sys.service.BaseService;
import com.cyt.wx.model.po.WxApplyUseCategory;
import com.cyt.wx.model.vo.WxApplyUseCategoryVo;

import java.util.List;

/**
 * 微信应用分类关联-微信应用分类关联Service层接口类
 *
 * @author congcong tao
 * @date 2019-8-14 10:40:36
 */
public interface WxApplyUseCategoryService extends BaseService<WxApplyUseCategory> {

    /**
     * 分页查询
     *
     * @param wxApplyUseCategoryVo 接受参数对象
     * @param pageNum 分页数
     * @param pageSize 每页显示条数
     * @return ReturnResult
     * @author congcong tao
     * @date 2019-8-14 10:40:36
     */
    ReturnResult findPage(WxApplyUseCategoryVo wxApplyUseCategoryVo, int pageNum, int pageSize);

    /**
     * 分页查询
     *
     * @param wxApplyUseCategoryVo 接受参数对象
     * @param pageNum 分页数
     * @param pageSize 每页显示条数
     * @return ReturnResult
     * @author congcong tao
     * @date 2019-8-14 10:40:36
     */
    ReturnResult findVoPage(WxApplyUseCategoryVo wxApplyUseCategoryVo, int pageNum, int pageSize);

    /**
     * list查询
     *
     * @param wxApplyUseCategoryVo 接受参数对象
     * @return List<WxApplyUseCategory>
     * @author congcong tao
     * @date 2019-8-14 10:40:36
     */
    List<WxApplyUseCategory> findList(WxApplyUseCategoryVo wxApplyUseCategoryVo);

    /**
     * list查询
     *
     * @param wxApplyUseCategoryVo 接受参数对象
     * @return List<WxApplyUseCategoryVo>
     * @author congcong tao
     * @date 2019-8-14 10:40:36
     */
    List<WxApplyUseCategoryVo> findVoList(WxApplyUseCategoryVo wxApplyUseCategoryVo);

    /**
     * 单个对象查询
     *
     * @param wxApplyUseCategoryVo 接受参数对象
     * @return WxApplyUseCategory
     * @author congcong tao
     * @date 2019-8-14 10:40:36
     */
    WxApplyUseCategory findOne(WxApplyUseCategoryVo wxApplyUseCategoryVo);

    /**
     * 单个对象查询
     *
     * @param wxApplyUseCategoryVo 接受参数对象
     * @return WxApplyUseCategoryVo
     * @author congcong tao
     * @date 2019-8-14 10:40:36
     */
    WxApplyUseCategoryVo findVoOne(WxApplyUseCategoryVo wxApplyUseCategoryVo);

    /**
     * 添加或更新
     *
     * @param wxApplyUseCategoryVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author congcong tao
     * @date 2019-8-14 10:40:36
     */
    ReturnResult addOrUpdate(WxApplyUseCategoryVo wxApplyUseCategoryVo, SysUser sysUser);

    /**
     * 根据条件逻辑删除
     *
     * @param wxApplyUseCategoryVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author congcong tao
     * @date 2019-8-14 10:40:36
     */
    ReturnResult remove(WxApplyUseCategoryVo wxApplyUseCategoryVo, SysUser sysUser);

    /**
     * 根据条件物理删除
     *
     * @param wxApplyUseCategoryVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author congcong tao
     * @date 2019-8-14 10:40:36
     */
    ReturnResult delete(WxApplyUseCategoryVo wxApplyUseCategoryVo, SysUser sysUser);

    /**
     * 批量保存
     * @param applyUseId
     * @param categoryIds
     * @param sysUser
     * @author congcong tao
     * @date 2019/8/14 11:44
     */
    ReturnResult batchSave(String applyUseId, String categoryIds, SysUser sysUser);
}